
$(function () {
    var win_w=$(window).width(),
        layl= $(".layout-l"),
        layr= $(".layout-r"),
        layl_w= layl.width(), //左区域宽
        layr_w= layr.width(),  //右区域宽
        cls_r = $(".layout-btn-r"),     //右侧按钮
        cls_r_w = cls_r.width(),     //右侧按钮宽
        cls_r_l= cls_r.offset().left; //右侧按钮——左距离
    layl.css({"width":layl_w});
    layr.css({"width":layr_w,"overflow-y":"auto"});
    cls_r.addClass("open").css({"left":cls_r_l+cls_r_w}).html("&gt;");
    // 开关右侧栏
    function clsR(width_l,width_r,ml) {
        width_r= width_r==0?win_w-width_l:width_r;
        cls_r.addClass("ant_time");
        $(".layout-l,.layout-r").addClass("ant_time");
        if(cls_r.hasClass("open")){
            $(".layout-l").css({"width":"100%"});  //左侧尺寸设置
            $(".layout-r").css({"width":"0","overflow-y":"hidden"}); //右侧尺寸设置
            cls_r.removeClass("open").css({"left":win_w}).html("&lt;"); //按钮位置设置
        }else{
            $(".layout-l").css({"width":width_l});
            $(".layout-r").css({"width":width_r,"overflow-y":"auto"});
            cls_r.addClass("open").css({"left":ml+cls_r_w}).html("&gt;");
        }
    }

    var mouse_l,_true=true;
    cls_r.mousedown(function(e){

        console.log(1);
        mouse_l=e.clientX;  _true=true; //当前按下鼠标位置
        $("body").addClass("none_sele"); //禁止文本选中

        $(".iframe-mask").removeClass("dn");    //遮罩显示
        $(document).mousemove(function(event){
            var e = event ? event: window.event,ec=e.clientX;
            if(_true){
                cls_r.removeClass("ant_time");  //按钮位移延迟去除
                $(".layout-l,.layout-r").removeClass("ant_time"); //左右框延迟动画去除
                //给定拖动范围
                if(ec > win_w-cls_r_w/2){
                    ec = win_w - cls_r_w/2
                }else if(ec < cls_r_w){
                    ec = cls_r_w
                }else{
                    // ec
                }
                //拖动设定尺寸
                // cls_r_l = ec + cls_r_w/2 - cls_r_w;
                if(cls_r.hasClass("open")){
                    layl_w=ec+cls_r_w/2;
                    layr_w=win_w-ec-cls_r_w/2;
                    cls_r.css({"left":ec + cls_r_w/2});
                    $(".layout-l").css({"width": layl_w});
                    $(".layout-r").css({"width": layr_w});
                }
            }
        });
        // //获取展开时各尺寸。
        if(cls_r.hasClass("open")){
            // layl_w=$(".layout-l").width();
            // layr_w=$(".layout-r").width();
            cls_r_l= cls_r.offset().left;
            // console.log(cls_r_l);
        }
    });
    $(document).mouseup(function(e){
        if(mouse_l===e.clientX ){ //点击位置比较 与 松开鼠标位置
            clsR( layl_w, layr_w, cls_r_l);
            console.log(cls_r_l);
        }
        $("body").removeClass("none_sele"); //恢复文本可选
        $(".iframe-mask").addClass("dn");   //遮罩隐藏
        _true=false;

    });

    $(window).resize(function () {
        cls_r.removeClass("ant_time");  //按钮位移延迟去除
        $(".layout-l,.layout-r").removeClass("ant_time"); //左右框延迟动画去除

        win_w=$(window).width();
        layl_w=win_w-layr_w;
        cls_r_l=layl_w-cls_r_w;
        layl.css({"width":win_w- layr_w });  //左侧尺寸设置
        cls_r.css({"left":win_w- layr.width()}); //按钮位置设置
    });


    //2018年12月2日16:28:36
    //2级标题点击
    $('.title_attr').click(function () {
        $(this).find('.attr-open').toggleClass('open-close');
    });

    //模块点击
    $('.attr_list a').click(function () {
        $(this).toggleClass('on');
        if( $(this).hasClass('on') ){
            getModule( $(this).data('url') , $(this).attr('id')   );
        }else{
            removeModule( $(this).attr('id')+'-a' );
        }
    });

    $( ".layout-show" ).sortable({
        beforeStop:function (data) {
            var sort= sortModule();
            console.log(sort);
            
        }
    });
    $( ".layout-show" ).disableSelection();
});


//请求模块内容
// var Murls;
var timeouts;
function getModule(url, id ,cb) {
    var Murls=url;
    id= id+'-a';
    $.ajax({
        url:'/getModule',
        type:'post',
        data: { url : url},
        success:function (data) {
            console.log(data);
            var s = data.indexOf('<body>')+6,
                e = data.indexOf('</body>'),
                con = data.slice(s,e);
            var h_s = data.indexOf('<head>')+6,
                h_e = data.indexOf('</head>'),
                h_c = data.slice(h_s, h_e),
                hc_list = $(h_c);

            hc_list.each(function (i,v) {
                if(v.tagName ==='LINK' || v.tagName==='SCRIPT'){
                    var cssUrl=$(v).prop('href'), jsUrl= $(v).prop('src');
                    if( $(v).data('type')==='global' ){
                        //全局查找匹配调用一次。
                        // turl.indexOf
                        searchLinkJs( cssUrl || jsUrl, cssUrl?'css':'js' );
                    }else{
                        //非全局插入
                        // console.log(v.outerHTML ,  Murls);
                        Murls=Murls.split('public')[1] || Murls.split('public')[0];

                        var MLL = Murls.split('/'), MLLT='';
                        for(var g=0,f=MLL.length-1; g<f; g++){
                            MLLT+= MLL[g]+ '/';
                        }

                        var VH =cssUrl?cssUrl.split('/'):jsUrl.split('/'), VHT='';
                        for(var m=0, e=VH.length; m<e; m++){
                            if(m>2){
                                VHT+= '/' + VH[m];
                            }
                        }
                        $(v).prop(cssUrl?'href':'src',  MLLT+ VHT );
                        con= $(v)[0].outerHTML + con;
                    }
                }

            });
            // console.log(con , url);
            $('.layout-show').append( '<div id="'+id+'" class="ant_show">'+con+'</div>'  );
            timeouts?clearTimeout(timeouts):'';
            timeouts=setTimeout(function () {
                $('.layout-show').find('div').removeClass('ant_show');
            },400);
            var sort= sortModule();
            // console.log(sort);
        }
    })
}
//清除模块内容
function removeModule(id, cb) {
    $('.layout-show').find('#'+id).remove();

    var sort= sortModule();
    console.log(sort);
}

//查询模块排序以及id
function sortModule() {
    var sort= [];
    $('.layout-show').children('div').each(function (i,v) {
        if ($(v).attr('id')){
            sort.push( $(v).attr('id') ) ;
        }
    });
    sessionStorage.setItem('sort', JSON.stringify(sort) );
    return sort
}

//查找 匹配头部的公用css与js 是否存在，不存在插入
function searchLinkJs(nameUrl, type) {
    var cname= nameUrl;
    // $('head').find('link').prop('href').indexOf('reset.css')
    // console.log('1232132132',nameUrl, type);
    var headDom=$('head'), headCo=headDom.html();
    if(type==='css'){
        if( headCo.indexOf(cname)===-1 ){
            $('head').append('<link rel="stylesheet" href="'+nameUrl+'" data-type="global">');
        }
    }else{
        if( headCo.indexOf(cname)===-1 ){
            $('head').append('<script type="text/javascript" src="'+nameUrl+'" data-type="global"></script>');
        }
    }

}

